// 环形队列
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

// 队列元素类型
typedef int QueueElementType;

// 队列的结构
typedef struct {
    QueueElementType *data;
    int front, rear;
    int capacity;
} SqQueue;

// 初始化队列
void InitQueue(SqQueue *&q, int capacity);
// 销毁队列
void DestroyQueue(SqQueue *&q);
// 判断队列是否为空, 空返回true，否则返回false
bool QueueEmpty(SqQueue *q);
// 进队列, e为要进队列的元素, 进队列成功返回true，否则返回false
bool enQueue(SqQueue *&q, QueueElementType e);
// 出队列, 将队头元素出队列到e中, 出队列成功返回true，否则返回false
bool deQueue(SqQueue *&q, QueueElementType &e);

int main() {
    SqQueue *q;
   InitQueue(q, 20);
    for (;;) {
        char op[10];
        scanf("%s", op);
        QueueElementType e;
        // 如果是进队操作
        if (strcmp(op, "en") == 0) {
            scanf("%d", &e);
            if (!enQueue(q, e)) {
                printf("error\n");
            }
        } else if (strcmp(op, "de") == 0) {
            // 如果是出队操作
            if (QueueEmpty(q)) {
                printf("error\n");
            } else {
                deQueue(q, e);
                printf("%d\n", e);
            }
        } else if (strcmp(op, "empty") == 0) {
            // 如果是empty操作
            if (QueueEmpty(q)) {
                printf("yes\n");
            } else {
                printf("no\n");
            }
        } else if (strcmp(op, "exit") == 0) {
            // 如果是exit操作
            break;
        }
    }
    DestroyQueue(q);
    return 0;
}
/* 请在这里填写答案 */

// 初始化队列
void InitQueue(SqQueue *&q, int capacity) {
    q = (SqQueue *) malloc(sizeof(SqQueue));
    q->data = (QueueElementType *) malloc(capacity * sizeof(QueueElementType));
    q->capacity = capacity;
    q->front = q->rear = 0;
}

// 销毁队列
void DestroyQueue(SqQueue *&q) {
    free(q->data);
    free(q);
}

// 判断队列是否为空, 空返回true，否则返回false
bool QueueEmpty(SqQueue *q) {
    return false;
}

// 进队列, e为要进队列的元素, 进队列成功返回true，否则返回false
bool enQueue(SqQueue *&q, QueueElementType e) {
    return false;
}

// 出队列, 将队头元素出队列到e中, 出队列成功返回true，否则返回false
bool deQueue(SqQueue *&q, QueueElementType &e) {
    return false;
}